package ltd.sumfsy.grain.mapper;

import java.util.List;
import ltd.sumfsy.grain.bean.RelationEquipAndData;
import ltd.sumfsy.grain.bean.example.RelationEquipAndDataExample;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

/**
 * 设备和数据关联对应的数据库操作
 * @author 范颂扬
 * @create 2021-05-13 10:41
 */
@Component
public interface RelationEquipAndDataMapper {

    /**
     * 查询符合条件的记录数
     * @param example 条件封装类
     * @author 范颂扬
     * @return long 返回记录数
     * @date 2021-05-13 10:41
     */
    long countByExample(RelationEquipAndDataExample example);

    /**
     * 删除符合条件的记录
     * @param example 条件封装类
     * @author 范颂扬
     * @return int 返回插入的记录数
     * @date 2021-05-13 10:41
     */
    int deleteByExample(RelationEquipAndDataExample example);

    /**
     * 插入数据（记录中所有字段除了自增主键外，其余都不能少）
     * @param record 要插入的数据对象
     * @author 范颂扬
     * @return int 返回插入的记录数
     * @date 2021-05-13 10:41
     */
    int insert(RelationEquipAndData record);

    /**
     * 插入数据（插入对象中不为空的字段）
     * @param record 要插入的数据对象
     * @author 范颂扬
     * @return int 返回插入的记录数
     * @date 2021-05-13 10:42
     */
    int insertSelective(RelationEquipAndData record);

    /**
     * 查询符合条件的记录
     * @param example 条件封装类
     * @author 范颂扬
     * @return java.util.List<ltd.sumfsy.grain.bean.RelationEquipAndData> 返回查询到的对象列表
     * @date 2021-05-13 10:42
     */
    List<RelationEquipAndData> selectByExample(RelationEquipAndDataExample example);

    /**
     * 更新符合条件的记录（数据中的字段不空就更新）
     * @param record 更新的数据
     * @param example 条件封装类
     * @author 范颂扬
     * @return int 返回更新的记录条数
     * @date 2021-05-13 10:42
     */
    int updateByExampleSelective(@Param("record") RelationEquipAndData record, @Param("example") RelationEquipAndDataExample example);

    /**
     * 更新符合条件的记录（数据中的所有字段都进行更新）
     * @param record 更新的数据
     * @param example 条件封装类
     * @author 范颂扬
     * @return int 返回更新的记录条数
     * @date 2021-05-13 10:42
     */
    int updateByExample(@Param("record") RelationEquipAndData record, @Param("example") RelationEquipAndDataExample example);
}